.hero {
  position: relative;
  top: 0;

  height: 100vh;
  min-height: 70vw;
  background-color: transparent;
}

.heading {
  position: absolute;
  margin-top: 25vh;
  margin-left: 10vw;

  width: 80%;
  height: fit-content;
}

.headingLabel {
  font-family: var(--swm-title-landing-font);
  font-size: 64px;
  font-weight: 700;

  line-height: 1.1;
  letter-spacing: 0;
  color: var(--swm-landing-heading);
}

.headingLabel span {
  margin-right: 8px;
}

.subheadingLabel {
  font-family: var(--swm-title-landing-font);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: var(--swm-heading-letter-spacing-bigger);

  margin-top: 32px;
  margin-bottom: 56px;
  width: 600px;
  color: var(--swm-landing-heading);
}

@media (max-width: 768px) {
  .headingLabel {
    font-size: 26px;
  }

  .subheadingLabel {
    font-size: 20px;
    width: 90%;
    margin-bottom: 0;
  }

  .heading {
    margin: 2em 0;
  }
}

@media (max-height: 768px) {
  .foregroundLabel {
    display: flex;
    justify-content: center;

    margin-left: 0;
  }
}

@media (max-width: 1124px) and (max-height: 768px) {
  .hero {
    min-height: 660px;
  }
}

@media (min-height: 768px) and (max-width: 768px) {
  .hero {
    position: relative;
    top: 0;

    height: calc(100vh - var(--ifm-navbar-height));
  }

  /* Height of hero: 100vh - height of navbar - possible height of announcement bar.
     * Using variable --docusaurus-announcement-bar-height is not possible here, as the height
     * of announcement bar is being calculated automatically there.
     */
  .hero[data-announcement-bar='true'] {
    height: calc(100vh - var(--ifm-navbar-height) - 2.5em);
  }

  .heading {
    position: static;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    margin-top: 64px;
    height: 100%;
  }

  .foregroundLabel {
    display: flex;
    flex-direction: column;
    align-items: center;

    width: 100%;
    height: 90%;

    margin-left: 0;
  }

  .lowerHeading {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: center;

    width: fit-content;
  }
}
